# 字符串转换为小写
str = 'Hello World!'
print(str.lower())

# 字符串转换为大写
print(str.upper())

# 分割字符串为列表
str2 = 'Hello World ni hao liu gong'
print(str2.split(' '))

# 查看字符串中 某个字符出现的次数
print(str2.count('o'))

# 查找字符串中某个字符的位置,如果没查到则返回 -1
print(str2.find('o'))
print(str2.find('p'))

# 查找字符串中的字符, 查不到会报错
print(str2.index('o'))
# print(str2.index('p'))

# 查询以某个字符开头的
print(str2.startswith('H'),'==startwith')
print(str2.endswith('g'),'==startwith')
print(str2.endswith('n'),'==startwith')

str3 = 'Hello World ni hao liu gong'
# 替换字符串, 第三个参数为替换次数，默认为全部替换
print(str3.replace('ni','你好'))
print(str3.replace('n','你'))
print(str3.replace('n','你', 1))

# 指定宽度让字符串居中，空格部分可用*号填充
print(str3.center(60,'*'))

# 将序列中的元素用一个字符连接成字符串
lst=['hello','world']
print('-'.join(lst))

# 字符串去除空格
str4 = '   hello    world    ni   hao   ***    '
print('(',str4.strip(),')')
print('(',str4.lstrip(),')')
print('(',str4.rstrip(),')')
str5 = 'Hello World ni hao liu gong hello'
print(str5.strip('he'))
print(str5.lstrip('he'))

# % 占位符的使用
name = '张三'
age  = 12
flate = 3.14
print ('姓名:%s,年龄：%d,占比率：%f' % (name, age, flate))

#f-string
print(f'姓名：{name},年龄：{age},占有率：{flate}')

# formate 字符串中的数字，是format参数中的下标，可以不按顺序
print('姓名:{0}, 年龄：{1}, 占有率：{2}'.format(name, age, flate))
print('姓名:{2}, 年龄：{0}, 占有率：{1}'.format(age,flate,name))

# 格式控制
str6 = 'hello world'
print('{0:*<20}'.format(str6)) # 0 表示format的第一个参数
print('{0:*>20}'.format(str6))
print('{0:*^20}'.format(str6))
# 宽度
print(str.center(30,'*'))

# 千分号
print('{0:,}'.format(12312392103))

# 精度 保留两位小数
print('{0:.2f}'.format(3.1415926))

# 字符串显示长度
print('{0:.5}'.format('abcdddefafd'))

# 进制转换
str7 = 425
print('二进制：{0:b}, 十进制:{0:d}, 八进制:{0:o}， 十六进制:{0:x}, 十六进制:{0:X}'.format(str7))
# 浮点数的展示
print('{0:e}, {0:E} ,{0:f} {0:%}'.format(3.1415926))